import request from '@/utils/request'

/**
 * 单词相关API
 */
export default {
  /**
   * 获取单词列表
   * @param {Object} params - 查询参数
   * @returns {Promise}
   */
  getWords(params) {
    return request({
      url: '/words',
      method: 'get',
      params
    })
  },

  /**
   * 获取单词详情
   * @param {Number|String} id - 单词ID
   * @returns {Promise}
   */
  getWord(id) {
    return request({
      url: `/words/${id}`,
      method: 'get'
    })
  },

  /**
   * 创建单词
   * @param {Object} data - 单词数据
   * @returns {Promise}
   */
  createWord(data) {
    return request({
      url: '/words',
      method: 'post',
      data
    })
  },

  /**
   * 更新单词
   * @param {Number|String} id - 单词ID
   * @param {Object} data - 单词数据
   * @returns {Promise}
   */
  updateWord(id, data) {
    return request({
      url: `/words/${id}`,
      method: 'put',
      data
    })
  },

  /**
   * 删除单词
   * @param {Number|String} id - 单词ID
   * @returns {Promise}
   */
  deleteWord(id) {
    return request({
      url: `/words/${id}`,
      method: 'delete'
    })
  },

  /**
   * 搜索单词
   * @param {Object} params - 搜索参数
   * @returns {Promise}
   */
  searchWords(params) {
    return request({
      url: '/words/search',
      method: 'get',
      params
    })
  },

  /**
   * 获取按字母分组的单词
   * @returns {Promise}
   */
  getWordsByAlphabet() {
    return request({
      url: '/words/alphabet',
      method: 'get'
    })
  },

  /**
   * 导入单词
   * @param {Object} data - 导入数据
   * @returns {Promise}
   */
  importWords(data) {
    return request({
      url: '/words/import',
      method: 'post',
      data
    })
  },

  /**
   * 导出单词
   * @param {Object} params - 导出参数
   * @returns {Promise}
   */
  exportWords(params) {
    return request({
      url: '/words/export',
      method: 'get',
      params,
      responseType: 'blob' // 文件下载
    })
  },
  
  /**
   * 获取随机单词
   * @param {Object} params - 参数
   * @returns {Promise}
   */
  getRandomWords(params) {
    return request({
      url: '/words/random',
      method: 'get',
      params
    })
  }
} 